//
//  BaseTableViewController.swift
//  WSWB
//
//  Created by 刘 伟生 on 16/1/8.
//  Copyright © 2016年 seasa. All rights reserved.
//

import UIKit

//创建一个父类UItableViewController,让其继承于tableViewController都集成于此,这样可以让他们具有相同的属性都能够继承与此
class BaseTableViewController: UITableViewController {
    
 //MARK: -属性
    var isLogined : Bool = UserCount.islogin()
    
    var vistorView : VistorView?
    
    //MARK : -系统的回调方法
    
    override func loadView() {
        //判断当前是否登录,如果为登录,那么则load当前的view,如果不是,就加在访问页面

         isLogined ? super.loadView() : loadVistorView()
    }
    
    private func loadVistorView() {
        //创建一个一个访客页面
        let vistorV = VistorView.vistor()
        
        //设置访客页面的属性
        
        //给访客页面上的按钮添加事件监控
        vistorV.loginBtn .addTarget(self, action: "loginBtnClick:", forControlEvents: .TouchUpInside)
        vistorV.registerBtn .addTarget(self, action: "registerBtnClick:", forControlEvents: .TouchUpInside)
        
        //将访客页面设置为当前控制器的view
        self.vistorView = vistorV
        
        view = vistorV
    }
    
    //创建两个方法,让继承自此的控制器能根据自己的实际来设置他的属性,从而改变时图
    
    //字谣调用这个方法,就可以转动转盘
    func transformRotate() {
        //创建动画
        let baseAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
        
        //设置它的动画时间
        baseAnimation.duration = 5.0
        
        //设置动画的起始位置和结束位置
        baseAnimation.fromValue = 0
        baseAnimation.toValue = M_PI * 2.0
        
        //设置循环次数 (无限次)
        baseAnimation.repeatCount = MAXFLOAT
        
        //设置动画再次出现的是时候,仍然保持继续 也就是的那个页面小时的时候,动画不移除,所以页面再次出现的时候,动画还会继续
        baseAnimation.removedOnCompletion = false
        
        
        //将动画添加到vistor层图上 注意这里这个可以是位了标记这个动画,方便日后再次获取这个动画
        self.vistorView?.retaeView?.layer .addAnimation(baseAnimation, forKey: nil)
        
    }
    
    //设置属性
    func setAttributeValue(iconName: String, title : String, isAnimation : Bool) {
        vistorView?.subTitleLabel.text = title
        vistorView?.iconView.image = UIImage(named: iconName)
    
        if isAnimation == false {//需要动画的时候
             transformRotate()
        }else { //不需要动画的时候,隐藏转盘view
            vistorView?.retaeView.hidden = true
        }
    }
    
    
    //MARK :-监控方法
    
    @objc private func loginBtnClick( btn: UIButton) {
        
        //创建一个OautController授权页面
        let Oauth = OauthController()
        
        //包装一个导航控制器
        let OAuthVC = UINavigationController(rootViewController: Oauth)
        
        //modal 出控制器
        self .presentViewController(OAuthVC, animated: true, completion: nil)
    }
    
    @objc private func registerBtnClick( btn: UIButton) {
        print("注册")
    }
    
    
}
